import java.util.ArrayList;

/**
 * 给你两个 非空 的链表，表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的，并且每个节点只能存储 一位 数字。
 *
 * 请你将两个数相加，并以相同形式返回一个表示和的链表。
 *
 * 你可以假设除了数字 0 之外，这两个数都不会以 0 开头。
 */
public class _2two_number_sum {
    public class ListNode {
        int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) { this.val = val; }
        ListNode(int val, ListNode next) { this.val = val; this.next = next; }
    }

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode head1 = new ListNode();
        ListNode head2 = new ListNode();
        head1.next = l1;
        head2.next = l2;
        ArrayList<Integer> list1 = new ArrayList<>();
        ArrayList<Integer> list2 = new ArrayList<>();
        ArrayList<Integer> sumList = new ArrayList<>();
        while (head1.next != null && head2.next != null) {
            list1.add(head1.next.val);
            list2.add(head2.next.val);
            head1 = head1.next;
            head2 = head2.next;
        }
        //获取到全部的链表信息
        String str1 = "";
        String str2 = "";
        for (int i = list1.size()-1; i >= 0; i--) {
            str1 += String.valueOf(list1.get(i));
            str2 += String.valueOf(list2.get(i));
        }
        //获取到字符串
        Integer num1 = Integer.parseInt(str1);
        Integer num2 = Integer.parseInt(str2);
        Integer sum = num1 + num2;
        ArrayList<Integer> list = new ArrayList<>();
        while (sum%10 > 0) {
            list.add(sum%10);
        }
        System.out.println(list.toString());
        return null;
    }

    public static void main(String[] args) {

    }
}
